iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0

新建專案

這邊我使用的是Intellij來進行示範,沒有業配~,各位可以使用自記喜歡的開發工具

  1. new projext
    https://ithelp.ithome.com.tw/upload/images/20230824/20139136wEW7GG87hD.png
  2. 選擇套件依賴
    https://ithelp.ithome.com.tw/upload/images/20230824/20139136mSqKGyKxVe.png
    這邊我選擇
  • Developer Tools
    • Lambok
  • Web
    • Spring Web
  • SQL
    • Spring Data JPA
    • Spring Data JDBC
    • PostgreSQL Driver

配合我後面的範例,這邊我先加了跟資料庫有關的一些套件。

資料夾結構

https://ithelp.ithome.com.tw/upload/images/20230824/20139136kQC8qkLKWF.png

來到今天的重頭戲,接下來我講述三個重要的角色,分別為Controller、Service、Repository

Controller

為我們接下來開發API的入口,接受到請求時,會由此進入,這邊我們會使用@RestController標籤來標示,來開發出一個REST風格的API。這邊也講一下常用的幾個接收請求的標籤

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping

以上四個標籤很直觀的就是分別處理Get、Post、Put、Delete四種請求的標籤。
間單上個範例

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {
    @GetMapping("/hello")
    public String index() {
        return "hello";
    }
}
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController {
    @GetMapping("/hello")
    public String index() {
        return "hello";
    }
}

這樣當URL為/hello時,就會進入到@GetMapping這邊設定的入口點,也就是hello()內。

Service

負責處理存進資料庫與資料獲取的邏輯,可以在這先進行資料的整理,並對資料庫進行溝通,與Controller 相同,需要一個@Service標籤來進行標示,表示這個class為Service。看起來如下

import org.springframework.stereotype.Service;

@Service
public class HomeService {
}

Repository

最後是Repository,真正在與資料庫進行溝通的地方,這邊不外乎需要一個@Repository來標示,比較不同的是這次是interface而不是class,這邊interface繼承的類別蠻多樣的,有興趣的話可以多方比較,這邊我使用的是JpaRepository這個interface,看起來如下:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface HomeRepository extends JpaRepository<Person, Long> {
}

以上三個角色的關係我再用一張圖總結一下
https://ithelp.ithome.com.tw/upload/images/20230824/20139136hgeJmrnEFo.png

今天先到這邊,明天會加入資料庫並做個簡單的演示,讓各位更清楚這三個角色的分工。

參考資料

https://start.spring.io/


上一篇
SPRING BOOT介紹
下一篇
Spring Boot - 資料庫串接
系列文
帶著MBP在異世界探險的科技宅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言